package com.schedualnew.mq.service;

import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Objects;

public class ConstantsUtil {

    public static SimpleDateFormat    YMDHMS = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    public static SimpleDateFormat    YMDHM = new SimpleDateFormat("yyyy-MM-dd HH:mm");

    /**
     * 终端类型
     */
    public enum TerminalTypeSchePath {
        DEPT("01", "A"),
        CLINIC_IN("02", "B"),
        SELF("03", "C"),
        MOBILE("04", "D"),
        SCHEDULE_CENTER("05", "E"),
        NO_REGULAR("99", "R"),
        CLINIC_OUT("06", "H");

        public String key;
        public String value;

        private TerminalTypeSchePath(String key, String value) {
            this.key = key;
            this.value = value;
        }

        public static TerminalTypeSchePath get(String key) {
            return Arrays.stream(values()).filter(x -> x.key.equals(key))
                    .findFirst().orElse(null);
        }

        public static String getValue(String key) {
            TerminalTypeSchePath schePath = get(key);

            if (Objects.nonNull(schePath)) {
                return schePath.value;
            }
            return null;
        }

        public static String getKey(String value) {
            TerminalTypeSchePath schePath = Arrays.stream(values())
                    .filter(x -> x.value.equals(value))
                    .findFirst().orElse(null);
            if (Objects.nonNull(schePath)) {
                return schePath.key;
            }
            return null;
        }
    }



    /**
     * 操作设备类型
     */
    public enum TerminalType {
        /**
         * 管理平台-【医技科室端】
         */
        DEPT("A"),
        /**
         * 临床医生端
         */
        CLINIC_IN("B"),
        /**
         * 自助机
         */
        SELF("C"),
        /**
         * 移动端
         */
        MOBILE("D"),

        /**
         * 预约中心端
         */
        SCHEDULE_CENTER("E"),
        SCHEDULE_MANAGE("F"),
        SYSTEM("G"),
        OTHER("O"),
        CLINIC_OUT("H");

        private String type;

        TerminalType(String type) {
            this.type = type;
        }

        public String getType() {
            return this.type;
        }
    }



    /***
     * 操作类型
     */
    public enum ActType {
        DEL_ITEM("C"),
        LOCK("L"),
        /**
         * 确认预约
         */
        CONFIRM("0"),
        /**
         * 修改预约
         */
        UPDATE("1"),
        CANCEL("2"),
        SIGN("3"),
        DEL_APPLY("4"),
        CANCEL_SIGN("5"),
        EXAM("6"),
        NO_REGULAR("7"),
        SCHE_PRINT("8"),
        INVENTORY("9"),
        /**
         * 签到打印
         */
        SIGN_PRINT("10"),
        /**
         * 通知断言
         */
        NOTICE_AFFIRM("11"),
        EDIT_APPLY("99");

        private String type;

        private ActType(String type) {
            this.type = type;
        }

        public String getType() {
            return this.type;
        }
    }


    /**
     * 预约状态
     */
    public enum ScheduleStatus {
        ZERO("0"),
        ONE("01"),
        TWO("02"),
        FOUR("04"),
        SIX("06"),
        EIGHT("08"),
        TEN("10"),
        FORTY("40"),
        NINE("09"),
        ZEROZERO("00");

        private String status;

        private ScheduleStatus(String status) {
            this.status = status;
        }

        public String getStatus() {
            return this.status;
        }
    }


    /**
     * 配置小项目枚举
     */
    public enum ConfigName {
        IC_CARD_PRES("yy_icCardPres", ""),

        /***
         * 【卡号栏查询支持类型】ic_card(诊疗卡号),inpatient_no(住院号),outpatient_no(门诊号),apply_no(申请单号),identity_card(身份证号),mi_card(医保卡号),sick_id(病人标识号),health_card(健康卡号),out_reg_no(挂号号),case_no(病案编号)
         */
        IC_CARD_INPUT_SUPPORT("yy_icCardInputSupport",
                "【卡号栏查询支持类型】ic_card(诊疗卡号),inpatient_no(住院号),outpatient_no(门诊号),apply_no(申请单号),identity_card(身份证号),mi_card(医保卡号),sick_id(病人标识号),health_card(健康卡号),out_reg_no(挂号号),case_no(病案编号)"),
        PATIENT_SOURCE_IN("yy_patientSourceIn", ""),
        IS_GET_CHARGE_FLAG_REALTIME("yy_isGetChargeFlagRealTime", ""),
        IS_GET_ACCOUNT_BALANCE_REALTIME("yy_isGetAccountBalanceRealTime", ""),
        IS_GET_CLINIC_PATH_FLAG_REALTIME("yy_isGetClinicPathFlagRealTime", ""),
        IS_NOTIFY_THIRD_AFTER_SCHEDULE("yy_isNotifyThirdAfterSchedule", ""),
        EXAM_APPLY_INFO_SUPPORT("yy_examApplyInfoSupport", ""),
        GET_CHARGE_FLAG_REALTIME_URL("yy_getChargeFlagRealTimeUrl", ""),
        GET_ACCOUNT_BALANCE_REALTIME_URL("yy_getAccountBalanceRealTimeUrl", ""),
        IS_IC_CARD_INPUT_NEW_SUPPORT("yy_isIcCardInputNewSupport", ""),
        IS_GET_REFER_PATIENT_INFO("yy_isGetReferPatientInfo", ""),
        IS_VIRTUAL_CARD_READER("yy_isVirtualCardReader", ""),
        VIRTUAL_CARD_READER_URL("yy_virtualCardReaderUrl", ""),
        IS_INPUT_NEW_SUPPORT("yy_isInputNewSupport", ""),
        HTTP_TIMEOUT("yy_httpTimeout", ""),
        IS_UPPER_CASE_INPUT("yy_isUpperCaseInput", ""),
        IS_TOKEN_OAUTH_BY_CLINIC("yy_isTokenOauthByClinic", ""),
        OPEN_THIRD_URL("yy_openThirdUrl", ""),
        IS_MESSAGE_ALERT("yy_isMessageAlert", ""),
        IS_MESSAGE_ALERT_BY_WARD("yy_isMessageAlertByWard", ""),
        IS_DEPT_WARD_DEFAULT_BY_TERMINAL_TYPE("yy_isDeptWardDefaultByTerminalType", ""),
        IS_EDIT_DEPT_WARD_LIMIT("yy_isEditDeptWardLimit", ""),
        REQ_DATE_DEFAULT_BY_SCHEDULE("yy_reqDateDefaultBySchedule", ""),
        REQ_DATE_DEFAULT_BY_QUERY("yy_reqDateDefaultByQuery", ""),
        NOT_EXAM_CLASS("yy_notExamClass", ""),
        IS_SHOW_CHARGE_FLAG("yy_isShowChargeFlag", ""),
        IS_CONFIRM_FEE_BEFORE_SCHEDULE("yy_isConfirmFeeBeforeSchedule", ""),
        CHARGE_AFTER_EXAM_CLASS("yy_chargeAfterExamClass", ""),
        CHARGE_FIRST_EXAM_CLASS("yy_chargeFirstExamClass", ""),
        CHARGE_FIRST_PATIENT_SOURCE("yy_chargeFirstPatientSource", ""),
        CANCEL_SCHEDULE_NO_CHARGE_MIN("yy_cancelScheduleNoChargeMin", ""),
        CANCEL_SCHEDULE_NO_CHARGE("yy_cancelScheduleNoCharge", ""),
        AUTO_SCHEDULE_DELAY_TIME("yy_autoScheduleDelayTime", ""),
        IS_VALID_DATE("yy_isValidDate", ""),
        IS_CANCEL_FLAG("yy_isCancelFlag", ""),
        IS_SCHEDULE_PLAN_BY_DEPTSCHE("yy_isSchedulePlanByDeptsche", ""),
        IS_SCHEDULE_PLAN_BY_CLINIC("yy_isSchedulePlanByClinic", ""),
        IS_SCHEDULE_QUERY_TO_CLINIC("yy_isScheduleQueryToClinic", ""),
        IS_SHOW_NOTICE("yy_isShowNotice", ""),
        IS_RECORD_NOTES_BY_CANCEL("yy_isRecordNotesByCancel", ""),
        ORGAN_EXAM_CLASS("yy_organExamClass", ""),
        SPAN_HOSPITAL_EXAM_CLASS("yy_spanHospitalExamClass", ""),
        EXPIRE_DAY_BY_PATIENT_SOURCE("yy_expireDayByPatientSource", ""),
        /**
         * 运送工具类型
         */
        TRANS_TOOL("yy_transTool", ""),
        IS_SMS_NOTICE_FOR_SCHEDULE("yy_isSmsNoticeForSchedule", ""),
        IS_SMS_NOTICE_FOR_DEL_SCHEDULE("yy_isSmsNoticeForDelSchedule", ""),
        SMS_NOTICE_PATIENT_SOURCE("yy_smsNoticePatientSource", ""),
        SMS_NOTICE_QUEUE("yy_smsNoticeQueue", ""),
        NEED_CONFIRM_ITEM("yy_needConfirmItem", ""),
        PRINT_TICKET_AFTER_SCHEDULE("yy_printTicketAfterSchedule", ""),
        SELF_REQ_DATE_LIMIT("yy_selfReqDateLimit", ""),
        IS_GET_HIS_APPLY_BY_THIRD_WS("yy_isGetHisApplyByThirdWS", ""),
        IS_RECEDE_COST_BY_CANCEL("yy_isRecedeCostByCancel", ""),
        CHARGE_AFTER_SCHEDULE_URL("yy_chargeAfterScheduleUrl", ""),
        CONFIRM_FEE_BEFORE_SCHEDULE_URL("yy_confirmFeeBeforeScheduleUrl", ""),
        REMIND_PRINT_TICKET_AFTER_SCHEDULE("yy_remindPrintTicketAfterSchedule", ""),
        MERGE_ITEM("yy_mergeItem", ""),
        QUEUE_NO_CLASS("yy_queueNoClass", ""),
        NO_REGULAR_QUEUE_NO_CLASS("yy_noRegularQueueNoClass", ""),
        NO_FREE_SOURCE_BY_CANCEL("yy_noFreeSourceByCancel", ""),
        EDIT_ITEM_FLAG_BEFORE_SCHEDULE("yy_editItemFlagBeforeSchedule", ""),
        NO_SHOW_UN_SCHEDULE_ITEM_BY_TERMINAL_TYPE("yy_noShowUnScheduleItemByTerminalType", ""),
        IS_SPAN_HOSPITAL_EXAM_CLASS_BY_GREEN_CHANNEL("yy_isSpanHospitalExamClassByGreenChannel", ""),
        CHECKOUT_PHONE_NUMBER_BY_EXAM_CLASS("yy_checkOutPhoneNumberByExamClass", ""),
        IS_SHOW_APPLY_NUMBER("yy_isShowApplyNumber", ""),
        CANCEL_SCHEDULE_NO_CHARGE_BY_TIME("yy_cancelScheduleNoChargeByTime", ""),
        MERGE_FULL_MATCH_EXAM_CLASS("yy_mergeFullMatchExamClass", ""),
        MERGE_PART_MATCH_EXAM_CLASS("yy_mergePartMatchExamClass", ""),
        FIRST_SCHE_PRIORITY_QUEUE_BY_ONE_DAY("yy_firstSchePriorityQueueByOneDay", ""),
        /**
         * 【限制自助端操作（包括自助机与移动端）】
         * examClass：表示限制操作的检查类别，
         * limitTime：表示限制操作的时间，
         * limitAct：表示限制操作
         */
        SELF_ACT_LIMIT("yy_selfActLimit", ""),
        NEED_CLAM_AGE_BY_ITEM("yy_needClamAgeByItem", ""),
        CHARGE_FIRST_SCHEDULE_URL("yy_chargeFirstScheduleUrl", ""),
        IS_CONFIRM_SCHEDULE_BY_IGNORE_DIALOG("yy_isConfirmScheduleByIgnoreDialog", ""),
        /**
         * 预约终端限制
         * 【自助端修改预约（改约）限制次数】
         * examClass：表示限制预约（改约）的检查类别，
         * terminalType：表示限制预约（改约）的终端类型，
         * limitCount：表示限制预约（改约）的次数
         */
        SCHEDULE_LIMIT_BY_TERMINAL("yy_scheduleLimitByTerminal", ""),

        CONFIRM_FEE_BEFORE_SCHEDULE_EXAM_CLASS("yy_confirmFeeBeforeScheduleExamClass", ""),
        CONFIRM_FEE_BEFORE_SCHEDULE_PATIENT_SOURCE("yy_confirmFeeBeforeSchedulePatientSource", ""),
        IS_NOT_UPDATE_CHARGE_FLAG_BY_CONFIRM_FEE("yy_isNotUpdateChargeFlagByConfirmFee", ""),
        IS_NOT_UPDATE_CHARGE_FLAG_BY_RECEDE_COST("yy_isNotUpdateChargeFlagByRecedeCost", ""),
        IS_OPEN_DEL_APPLY_BTN("yy_isOpenDelApplyBtn", ""),
        ONLY_MATCH_APM_BY_CLAM_APPLY("yy_onlyMatchApmByClamApply", ""),
        IS_NEED_PASSWORD_BY_DEPTSCHE("yy_isNeedPasswordByDeptsche", ""),
        NEED_PASSWORD_EXAM_CLASS_BY_DEPTSCHE("yy_needPasswordExamClassByDeptsche", ""),
        CHARGE_FIRST_TERMINAL_TYPE("yy_chargeFirstTerminalType", ""),
        NO_SHOW_ONLY_DEPTSCHE_SCHEDULE_BY_TERMINAL_TYPE("yy_noShowOnlyDeptscheScheduleByTerminalType", ""),
        IS_AUTO_SCHEDULE_BY_TIMING_TASK("yy_isAutoScheduleByTimingTask", ""),
        AUTO_SCHEDULE_BY_TIMING_TASK("yy_autoScheduleByTimingTask", ""),
        GET_HIS_APPLY_BY_HOSPITAL("yy_getHisApplyByHospital", ""),
        SCHEDULE_STATUS_BY_CONFIRM_FEE("yy_scheduleStatusByConfirmFee", ""),
        CLICK_BTN_BY_PRINT_NUM("yy_clickBtnByPrintNum", ""),
        AUTO_PRINT_NUM_AFTER_SCHEDULE("yy_autoPrintNumAfterSchedule", ""),
        AUTO_PRINT_NUM_BY_ITEM("yy_autoPrintNumByItem", ""),
        IS_SCAN_BTN_BY_SCHEDULE_SIGN("yy_isScanBtnByScheduleSign", ""),
        IS_DYNAMIC_SOURCE("yy_isDynamicSource", ""),
        IS_SIGNIN_TIME_NO_LIMIT("yy_isSignInTimeNoLimit", ""),
        CHARGE_AFTER_EXAM_CLASS_BY_SIGN("yy_chargeAfterExamClassBySign", ""),
        IS_CHARGE_AFTER_SIGN("yy_isChargeAfterSign", ""),
        IS_SCHEDULE_INTERVAL_BY_SIGN("yy_isScheduleIntervalBySign", ""),
        IS_SCANNER_AFTER_SIGN("yy_isScannerAfterSign", ""),
        IS_SCHEDULE_TODAY_BY_SIGN("yy_isScheduleTodayBySign", ""),
        IS_SHOW_INFO_DIALOG_BY_SIGN("yy_isShowInfoDialogBySign", ""),
        IS_ADVANCE_TIME_FOR_NIGHT_SIGN("yy_isAdvanceTimeForNightSign", ""),
        IS_SIGN_SCHEDULE_BY_THIRD_WS("yy_isSignScheduleByThirdWS", ""),
        /**
         * 预约生成排队号
         */
        IS_TAKE_NO_QUEUE("yy_isTakeNoQueue", ""),
        PRINT_TICKET_AFTER_SIGN("yy_printTicketAfterSign", ""),
        SIGNIN_OVERTIME_CNT("yy_signin_overtime_cnt", ""),
        IS_RECEDE_COST_BY_RESET("yy_isRecedeCostByReSet", ""),
        CHARGE_AFTER_SIGN_URL("yy_chargeAfterSignUrl", ""),
        IS_CONFIRM_FEE_BEFORE_SIGN("yy_isConfirmFeeBeforeSign", ""),
        CONFIRM_FEE_BEFORE_SIGN_URL("yy_confirmFeeBeforeSignUrl", ""),
        REMIND_PRINT_TICKET_AFTER_SIGN("yy_remindPrintTicketAfterSign", ""),
        FREE_SOURCE_BY_EARLY_SIGN("yy_freeSourceByEarlySign", ""),
        PRINT_BY_EXAM_NO("yy_PrintByExamNo", ""),
        NO_CLICK_SIGN_BTN_BY_EXAM_CLASS("yy_noClickSignBtnByExamClass", ""),
        REPEAT_SIGN_BY_EXAM_CLASS("yy_repeatSignByExamClass", ""),
        CONFIRM_FEE_BEFORE_SIGN_EXAM_CLASS("yy_confirmFeeBeforeSignExamClass", ""),
        CONFIRM_FEE_BEFORE_SIGN_PATIENT_SOURCE("yy_confirmFeeBeforeSignPatientSource", ""),
        ADVANCE_TIME_TYPE_BY_SCHEDULE_PRINT("yy_advanceTimeTypeBySchedulePrint", ""),
        FTP_CONFIG("yy_ftpConfig", ""),
        IS_SYSTEM_MESSAGE_BOARD("yy_isSystemMessageBoard", ""),
        IS_READ_CARD("yy_isReadCard", ""),
        DELETE_EXAMS_TYPE("yy_deleteExamsType", ""),
        IS_CHARGE_URL("yy_isChargeUrl", ""),
        /***
         * 系统任务
         */
        IS_SYS_TASK("yy_isSysTask", ""),
        PRINT_EXE_URL("yy_printExeUrl", ""),
        DIAGNOSTIC_KEYWORD("yy_diagnosticKeyword", ""),
        CLOUD_FILM_URL("yy_cloudFilmUrl", ""),
        YY_QUERY_YET_EXAMS("yy_isQueryYetExam", ""),
        YY_VISIT_DATE_SORT("yy_isVisitdateSort", ""),
        IS_PRINT_FLAG_BY_TERMINAL("yy_isPrintFlagByTerminal", ""),
        YY_LOGINSSOURL("yy_loginSSOUrl", ""),
        IS_SHOW_SHIELD_APPLY_BTN("yy_isShowShieldApplyBtn", ""),
        IS_SHOW_SOURCE_EDIT_BTN("yy_isShowSourceEditBtn", ""),
        IS_AUTO_TRIAGE("is_auto_triage", ""),
        NO_CONFLICT_EXAM_CLASS("yy_noConflictExamClass", ""),
        // NO_CONFLICT_INTERVAL_TIME("yy_noConflictIntervalTime", ""),
        IS_NO_ONE_DAY_CLAM("yy_isNoOneDayClam", ""),
        IS_NO_ONE_DAY_ENHANCE("yy_isNoOneDayEnhance", ""),
        NO_ONE_DAY_CLAM_OR_ENHANCE_ITEM("yy_noOneDayClamOrEnhanceItem", ""),
        ONE_DAY_ORDER("yy_oneDayOrder", ""),
        /**
         * 【A列表项目比B列表项目至少优先或延后多少天多少小时（项目先后检查及时间设置）】beforeDays：提前多少天数，beforeHours：提前多少小时，afterDays：延后多少天数，afterHours：延后多少小时，examItemA：A列表，examItemB：B列表
         */
        ITEM_BEFORE("yy_itemBefore", ""),

        /***
         * 不允许有冲突的时间安排
         */
        IS_NOT_ALLOW_SCHEDULE_BY_CONFLICT("yy_isNotAllowScheduleByConflict", ""),
        YY_CUSTOMEXCEL("yy_customExcel", ""),
        REMAIN_SOURCE_TYPE("yy_remainSourceType", ""),
        YY_CUSTOMEXCEL_SORT_SET("yy_customExcelSortSet", ""),

        /**
         * 打印清单列表
         */
        YY_PRINT_LIST("yy_printList", ""),
        /**
         * 打印列表排序规则
         */
        YY_PRINT_LIST_SORT_SET("yy_printListSortSet", ""),
        /**
         * 字体颜色
         */
        FONT_COLOR("yy_fontColor", ""),
        CUSTOM_SEARCH_TOOL_BY_SCHEDULE_SIGN("yy_customSearchToolByScheduleSign", "自定义检索栏(预约报到界面)"),
        CUSTOM_TABLE_ROW_BY_SCHEDULE_SIGN("yy_customTableRowByScheduleSign", "自定义表格列(预约报到界面)"),
        CUSTOM_SEARCH_TOOL_BY_MULTIPLE_QUERY("yy_customSearchToolByMultipleQuery", "自定义检索栏(综合查询界面)"),
        CUSTOM_TABLE_ROW_BY_MULTIPLE_QUERY("yy_customTableRowByMultipleQuery", "自定义表格列(综合查询界面)"),
        STATISTICAL_ANALYSIS_ENTRY("yy_statisticalAnalysisEntry", ""),
        YY_CUSTOMEXCEL_BY_VIRTUAL_ORDER("yy_customExcelByVirtualOrder", ""),
        YY_CUSTOMEXCEL_BY_REGISTER_RATE_COUNT("yy_customexcelByRegisterRateCount", ""),
        YY_CUSTOMEXCEL_BY_HOSPITAL_RATE_COUNT("yy_customexcelByHospitalRateCount", ""),
        YY_CUSTOMEXCEL_BY_OCCUPY_RATE_COUNT("yy_customexcelByOccupyRateCount", ""),
        YY_CUSTOMEXCEL_BY_DEPT_USER_COUNT("yy_customexcelByDeptUserCount", ""),
        YY_CUSTOMEXCEL_BY_SCHEDULE_COUNT("yy_customexcelByScheduleCount", ""),
        YY_CUSTOMEXCEL_BY_WORK_COUNT("yy_customexcelByWorkCount", ""),
        YY_CUSTOMEXCEL_BY_TERMINAL_TYPE_COUNT("yy_customexcelByTerminalTypeCount", ""),
        YY_CUSTOMEXCEL_BY_BREAK_PROMISE_COUNT("yy_customexcelByBreakPromiseCount", ""),
        YY_CUSTOMEXCEL_SORT_SET_BY_VIRTUAL_ORDER("yy_customExcelSortSetByVirtualOrder", ""),
        CUSTOM_TABLE_ROW_BY_SCHEDULE_DETAIL("yy_customTableRowByScheduleDetail", "自定义表格列(预约详情界面)"),
        NO_SCHEDULE_ITEM_REMINDER("yy_noScheduleItemReminder", ""),
        NO_QUERY_EXAM_APPLY_REMINDER("yy_noQueryExamApplyReminder", ""),
        NO_QUEUE_BY_EXAM_CLASS_REMINDER("yy_noQueueByExamClassReminder", ""),
        NOT_ALLOW_EDIT_OR_CANCEL_BEFORE_SCHEDULE_REMINDER("yy_notAllowEditOrCancelBeforeScheduleReminder", ""),
        CUSTOM_TABLE_ROW_BY_ORDER_MANAGE("yy_customTableRowByOrderManage", "自定义表格列(号源设置界面)"),
        CUSTOM_TABLE_ROW_BY_APPLY_INFO("yy_customTableRowByApplyInfo", "自定义字段(预约报到--申请单内容)"),
        /**
         * 自定义格式配置
         */
        CUSTOM_CONFIG("yy_customConfig", "自定义格式配置"),
        CUSTOM_TABLE_ROW_SORT_SET_BY_SCHEDULE_SIGN("yy_customTableRowSortSetByScheduleSign", "自定义列排序设置(预约报到界面)"),
        CUSTOM_TABLE_ROW_SORT_SET_BY_MULTIPLE_QUERY("yy_customTableRowSortSetByMultipleQuery", "自定义列排序设置(综合查询界面)"),
        IS_NO_CHARGE_NO_SIGN("yy_isNoChargeNoSign", ""),
        NO_SIGN_QUEUE_BY_SELF_REMINDER("yy_noSignQueueBySelfReminder", ""),
        LIMIT_SCHEDULE_ITEM_BY_TERMINAL_REMINDER("yy_limitScheduleItemByTerminalReminder", ""),
        YY_CURE_CUSTOMEXCEL("yy_cure_customexcel", ""),
        YY_CURE_CUSTOMEXCEL_SORT_SET("yy_cure_customExcelSortSet", ""),
        IS_AUTO_QUERY_BY_SCHEDULE_SIGN("yy_isAutoQueryByScheduleSign", ""),
        AUTO_QUERY_COUNT_BY_SCHEDULE_SIGN("yy_autoQueryCountByScheduleSign", ""),
        CUSTOM_SEARCH_TOOL_BY_CLINICSCHE("yy_customSearchToolByClinicsche", "自定义检索栏(临床预约-预约报到界面)"),
        CUSTOM_TABLE_ROW_BY_CLINICSCHE("yy_customTableRowByClinicsche", "自定义表格列(临床预约-预约报到界面)"),
        CUSTOM_TABLE_ROW_SORT_SET_BY_CLINICSCHE("yy_customTableRowSortSetByClinicsche", "自定义列排序设置(临床预约-预约报到界面)"),
        CUSTOM_SEARCH_TOOL_BY_DEPTSCHE("yy_customSearchToolByDeptsche", "自定义检索栏(临床预约-综合查询界面)"),
        CUSTOM_TABLE_ROW_BY_DEPTSCHE("yy_customTableRowByDeptsche", "自定义表格列(临床预约-综合查询界面)"),
        CUSTOM_TABLE_ROW_SORT_SET_BY_DEPTSCHE("yy_customTableRowSortSetByDeptsche", "自定义列排序设置(临床预约-综合查询界面)"),
        CUSTOM_TABLE_ROW_SORT_SET_BY_SCHEDULE_SIGN_PATIENT_LIST("yy_customTableRowSortSetByScheduleSignPatientList", "自定义列排序设置(预约报到界面-患者列表)"),
        CUSTOM_TABLE_ROW_SORT_SET_BY_CLINICSCHE_PATIENT_LIST("yy_customTableRowSortSetByClinicschePatientList", "自定义列排序设置(临床预约-预约报到界面-患者列表)"),
        YY_PRINT_LIST_BY_DEPTSCHE("yy_printListByDeptsche", "打印清单(临床预约-综合查询界面)"),
        YY_PRINT_LIST_SORT_SET_BY_DEPTSCHE("yy_printListSortSetByDeptsche", "打印清单排序设置(临床预约-综合查询界面)"),
        YY_CUSTOMEXCEL_BY_DEPTSCHE("yy_customExcelByDeptsche", "导出清单(临床预约-综合查询界面)"),
        YY_CUSTOMEXCEL_SORT_SET_BY_DEPTSCHE("yy_customExcelSortSetByDeptsche", "导出清单排序设置(临床预约-综合查询界面)"),
        LOGIN_LOGO_PIC("yy_loginLogoPic", ""),
        FRAME_LOGO_PIC("yy_frameLogoPic", ""),
        FRAME_NAME("yy_frameName", ""),
        CUSTOM_PHONE("yy_customPhone", ""),
        CUSTOM_DEPT_CODE("yy_customDeptCode", "");

        private String key;
        private String value;

        ConfigName(String key, String value) {
            this.key = key;
            this.value = value;
        }

        public String getKey() {
            return key;
        }

        public String getValue() {
            return value;
        }

        public static ConfigName get(String key) {
            ConfigName[] values = values();
            for (ConfigName obj : values) {
                if (obj.key.equals(key)) {
                    return obj;
                }
            }
            return null;
        }

        public static String getValue(String key) {
            ConfigName[] values = values();
            for (ConfigName obj : values) {
                if (obj.key.equals(key)) {
                    return obj.value;
                }
            }
            return "";
        }
    }


    /**
     * 人员类型
     */
    public enum UserType {
        PATIENT("1"),
        DOCTOR("2"),
        SYSTEM("3");

        private String type;

        UserType(String type) {
            this.type = type;
        }

        public String getType() {
            return this.type;
        }
    }


    /***
     * 提醒类型
     */
    public enum ReminderType {
        SCHEDULE("REMINDER_SCHEDULE"),
        SIGN("REMINDER_SIGN");

        private String type;

        ReminderType(String type) {
            this.type = type;
        }

        public String getType() {
            return this.type;
        }
    }
}
